package fun.werfamily.wf.payment.core.domain.dto.req;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.DecimalMin;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;

@Data
@Builder
@NoArgsConstructor
@AllArgsConstructor
@ApiModel("创建支付请求参数")
public class PayCancelReq {

    @ApiModelProperty(value = "用户编码")
    private String userCode;

    @ApiModelProperty(value = "支付方式")
    @NotNull(message = "支付方式不能为空")
    private String payType;

    @ApiModelProperty(value = "支付金额")
    @DecimalMin(value = "0.01", message = "金额最小值为0.01")
    @NotNull(message = "支付金额不能为空")
    private BigDecimal payAmount;

    @ApiModelProperty(value = "业务单号")
    @NotNull(message = "业务单号不能为空")
    private String bizNo;

    @ApiModelProperty(value = "业务类型")
    @NotNull(message = "业务类型不能为空")
    private Integer bizType;

    @ApiModelProperty(value = "操作支付时间")
    private LocalDateTime payTime;

    @ApiModelProperty(value = "操作人")
    @NotNull(message = "操作人不能为空")
    private String createBy;

    @ApiModelProperty(value = "备注")
    private String remark;
}
